package freemind.controller;

import freemind.controller.NodeBean;
import freemind.main.XMLElement;

public class NodeAdapterDialogos extends NodeAdapterBase implements NodeAdapterInterface {

	private int cenaId,dialogoId,acordo,relacionamento,racionalidade,cenario;
	private String extra,introducao,descricao;
	private boolean linkOperation;
	
	public String getIntroducao(){
		return this.introducao;
	}
	
	public void setIntroducao(String intro){
		this.introducao = intro;
	}
	
	public String getDescricao(){
		return this.descricao;
	}
	
	public void setDescricao(String descr){
		this.descricao = descr;
	}
	
	public int getCenario(){
		return this.cenario;
	}
	
	public void setCenario(int cenarioId){
		this.cenario = cenarioId;
	}
		
	public int getAcordo() {
		return acordo;
	}

	public void setAcordo(int acordo) {
		this.acordo = acordo;
	}

	public int getRelacionamento() {
		return relacionamento;
	}

	public void setRelacionamento(int relacionamento) {
		this.relacionamento = relacionamento;
	}

	public int getRacionalidade() {
		return racionalidade;
	}

	public void setRacionalidade(int racionalidade) {
		this.racionalidade = racionalidade;
	}

	public String getExtra() {
		return extra;
	}

	public void setExtra(String extra) {
		this.extra = extra;
	}

	public NodeAdapterDialogos(NodeBean bean) {
		super(bean);
	}
	
	public NodeAdapterDialogos() {
		super();
	}		
	
	public int getCenaId(){
		return cenaId;
	}
	
	public int getDialogoId(){
		return dialogoId;
	}
	
	public void setCenaId(int cenaId){
		this.cenaId = cenaId;
	}
	
	public void setDialogoId(int dialogoId){
		this.dialogoId = dialogoId;
	}
	
	public void hasChangedAndLinked(){
		this.hasChanged();
		linkOperation = true;
	}
	
	public void hasSaved(){
		super.hasSaved();
		linkOperation = false;
	}
	
	public XMLElement getXMLFromBean(){
		AtributoEnegModulo attrLinkOperation = new AtributoEnegModulo("operacaoLink",Boolean.toString( linkOperation ) );
		
		AtributoEnegModulo attrAcordo = new AtributoEnegModulo("acordo",Integer.toString( acordo ) );
		AtributoEnegModulo attrRelacionamento = new AtributoEnegModulo("relacionamento",Integer.toString( relacionamento ) );
		AtributoEnegModulo attrRacionalidade = new AtributoEnegModulo("racionalidade",Integer.toString( racionalidade) );
		AtributoEnegModulo attrExtra = new AtributoEnegModulo("extra",extra );
			
		AtributoEnegModulo attrDialogoId = new AtributoEnegModulo("dialogoId", Integer.toString( dialogoId ) );
		AtributoEnegModulo attrCenaId = new AtributoEnegModulo("cenaId", Integer.toString(cenaId) );

		this.clearAtributosExtras();
		
		this.addAtributoExtra(attrLinkOperation);
		
		this.addAtributoExtra(attrAcordo);
		this.addAtributoExtra(attrRelacionamento);
		this.addAtributoExtra(attrRacionalidade);
		this.addAtributoExtra(attrExtra);
				
		this.addAtributoExtra(attrDialogoId);
		this.addAtributoExtra(attrCenaId);
		
		
		XMLElement xml = super.getXMLFromBean();		
		return xml;		
	}

	public void getBeanFromXML(XMLElement noElement){
		super.getBeanFromXML(noElement);
		
		XMLElement extras = (XMLElement) noElement.getChildren().get(1);
		
		try{
			XMLElement acordo = (XMLElement) extras.getChildren().get(0);
			XMLElement relacionamento = (XMLElement) extras.getChildren().get(1);
			XMLElement racionalidade = (XMLElement) extras.getChildren().get(2);		
			XMLElement extra = (XMLElement) extras.getChildren().get(3);
			
			XMLElement dialogoId = (XMLElement) extras.getChildren().get(4);
			XMLElement cenaId = (XMLElement) extras.getChildren().get(5);	
				
			setAcordo( Integer.parseInt( acordo.getContent() ) );
			setRacionalidade( Integer.parseInt( racionalidade.getContent() ) );
			setRelacionamento( Integer.parseInt( relacionamento.getContent() ) );
			setExtra( extra.getContent() );
			
			setCenaId( Integer.parseInt( cenaId.getContent() ) );
			setDialogoId( Integer.parseInt( dialogoId.getContent() ) );
		}
		catch(Exception ex){}
		
		
		
	}	
	
	public void setMetaDados(XMLElement meta){
		super.setMetaDados(meta);
		
		XMLElement intro = (XMLElement) meta.getChildren().get(4);
		XMLElement descr = (XMLElement) meta.getChildren().get(5);
		XMLElement cenario = (XMLElement) meta.getChildren().get(6);
		
		this.setIntroducao(intro.getContent());
		this.setDescricao(descr.getContent());
		this.setCenario( Integer.valueOf( cenario.getContent() ) );
		
	}
	
	public XMLElement createMapMetaXML(){
		XMLElement metaDados = super.createMapMetaXML();
		
		XMLElement introducao = new XMLElement();
		introducao.setName("introducao");
		introducao.setContent(this.getIntroducao());
		
		XMLElement descricao = new XMLElement();
		descricao.setName("descricao");
		descricao.setContent(this.getDescricao());
		
		XMLElement cenario = new XMLElement();
		cenario.setName("cenario");
		cenario.setContent( String.valueOf( this.getCenario() ) );		
		
		metaDados.addChild(introducao);
		metaDados.addChild(descricao);
		metaDados.addChild(cenario);
		
		return metaDados;
		
	}
	
}
